// Problem: F - Grid of Lamps
// Idea: Gready.
// Language: C++
// Author: Ivan Vladimirov Ivanov (ivan.vladimirov.ivanov@gmail.com)

#include <cstdio>
#include <algorithm>

using namespace std;

#define MAX 1005

void input(void);
void solve(void);

int n, m;
int R[MAX];
int C[MAX];

int main(void)
{
  int t;
  scanf("%d", &t);
  while(t--) {
    input();
    solve();
  }

  return 0;
}

void input(void)
{
  scanf("%d %d", &n, &m);
  for(int i = 0; i < n; i++) scanf("%d", &R[i]);
  for(int i = 0; i < m; i++) scanf("%d", &C[i]);
}

void solve(void)
{
  int sumR = 0;
  int sumC = 0;
  for(int i = 0; i < n; i++) sumR += R[i];
  for(int i = 0; i < m; i++) sumC += C[i];

  int cnt = 0;
  for(int i = 0; i < n; i++) {
    int v = R[i];
    sort(C, C + m);
    reverse(C, C + m);
    for(int j = 0; j < m && v > 0; j++) {
      if(C[j] == 0) continue;
      cnt++;
      v--;
      C[j]--;
    }
  }

  int res = sumR + sumC - cnt;
  printf("%d\n", res);
}

